Excel ম্যাক্রো ব্যবহার করে আপনি বিভিন্ন Worksheet (ওয়ার্কশীট) এবং Workbook (ওয়ার্কবুক) এর মধ্যে কাজ করতে পারেন, যেমন নতুন শীট তৈরি করা, শীটগুলো হিড করা, সেল রেফারেন্স করা, ডেটা কপি/পেস্ট করা ইত্যাদি। Excel VBA (Visual Basic for Applications)-এ কাজ করার সময়, Workbook এবং Worksheet-এর সাথে ইন্টারঅ্যাক্ট করা খুবই গুরুত্বপূর্ণ এবং এটি ম্যাক্রো অটোমেশনকে আরও শক্তিশালী করে তোলে।
Workbook এবং Worksheet কী?
- Workbook: এক্সেল ফাইলের পুরো কাঠামো। একটি ওয়ার্কবুক একাধিক ওয়ার্কশীট ধারণ করতে পারে।
- Worksheet: ওয়ার্কবুকের একটি একক শীট যেখানে ডেটা রাখা হয়।
এক্সেল VBA-তে Workbook এবং Worksheet কে উদ্দেশ্য করে আপনি বিভিন্ন কাজ করতে পারেন। উদাহরণস্বরূপ, একটি শীটে ডেটা লিখা, অন্য শীটে ডেটা কপি করা, বা শীট নাম পরিবর্তন করা ইত্যাদি।
VBA তে Workbook এর সাথে কাজ করা
১. নতুন Workbook তৈরি করা
Excel VBA-তে একটি নতুন workbook তৈরি করতে Workbooks.Add কমান্ড ব্যবহার করা হয়।
Syntax:
Workbooks.Add
উদাহরণ:
Sub CreateNewWorkbook()
Workbooks.Add
End Sub
এটি একটি নতুন ওয়ার্কবুক তৈরি করবে এবং এক্সেলেই একটি নতুন ফাইল খোলা হবে।
২. Workbook খুলা
আপনি যদি একটি বিদ্যমান workbook খুলতে চান, তাহলে Workbooks.Open ব্যবহার করা হয়।
Syntax:
Workbooks.Open "C:\Path\To\Your\Workbook.xlsx"
উদাহরণ:
Sub OpenWorkbook()
Workbooks.Open "C:\Users\YourName\Documents\Example.xlsx"
End Sub
এটি নির্দিষ্ট পাথে অবস্থিত একটি ফাইল খুলবে।
৩. Workbook সেভ করা
আপনি একটি workbook সেভ করতে পারেন Save অথবা SaveAs কমান্ড ব্যবহার করে।
Syntax:
ThisWorkbook.Save
উদাহরণ:
Sub SaveWorkbook()
ThisWorkbook.Save
End Sub
এটি বর্তমান ওয়ার্কবুকটি সেভ করবে। আপনি SaveAs ব্যবহার করে নতুন নাম দিয়ে সেভ করতে পারেন।
Sub SaveWorkbookAs()
ThisWorkbook.SaveAs "C:\Path\To\Save\NewWorkbook.xlsx"
End Sub
৪. Workbook বন্ধ করা
এক্সেল VBA-তে কোনো workbook বন্ধ করতে Workbook.Close ব্যবহার করা হয়।
Syntax:
Workbooks("WorkbookName.xlsx").Close
উদাহরণ:
Sub CloseWorkbook()
Workbooks("Example.xlsx").Close
End Sub
এটি Example.xlsx নামক ফাইলটি বন্ধ করবে।
VBA তে Worksheet এর সাথে কাজ করা
১. নতুন Worksheet তৈরি করা
আপনি নতুন একটি worksheet তৈরি করতে Sheets.Add ব্যবহার করতে পারেন।
Syntax:
Sheets.Add
উদাহরণ:
Sub AddNewWorksheet()
Sheets.Add
End Sub
এটি একটি নতুন worksheet তৈরি করবে এবং তা বর্তমান workbook-এ যুক্ত করবে।
২. Worksheet নির্বাচন করা
আপনি একটি নির্দিষ্ট worksheet নির্বাচন করতে Worksheets("SheetName") ব্যবহার করতে পারেন।
Syntax:
Worksheets("SheetName").Select
উদাহরণ:
Sub SelectWorksheet()
Worksheets("Sheet1").Select
End Sub
এটি Sheet1 নামক worksheet নির্বাচন করবে।
৩. Worksheet নাম পরিবর্তন করা
যদি আপনি একটি worksheet এর নাম পরিবর্তন করতে চান, তাহলে Name প্রপার্টি ব্যবহার করতে পারেন।
Syntax:
Worksheets("OldSheetName").Name = "NewSheetName"
উদাহরণ:
Sub RenameWorksheet()
Worksheets("Sheet1").Name = "NewSheet"
End Sub
এটি Sheet1 নামক worksheet এর নাম পরিবর্তন করে NewSheet রাখবে।
৪. Worksheet কে Hide বা Unhide করা
আপনি একটি worksheet কে হিড (Hide) বা আনহিড (Unhide) করতে পারেন Visible প্রপার্টি দিয়ে।
- Worksheet.Hide:
Sub HideWorksheet()
Worksheets("Sheet1").Visible = False
End Sub
এটি Sheet1 নামক worksheet কে হিড করবে।
- Worksheet.Unhide:
Sub UnhideWorksheet()
Worksheets("Sheet1").Visible = True
End Sub
এটি Sheet1 নামক worksheet কে আনহিড করবে।
৫. Worksheet থেকে ডেটা রিড বা রাইট করা
যেকোনো worksheet-এ ডেটা লেখার জন্য বা পড়ার জন্য আপনি সেল রেফারেন্স ব্যবহার করতে পারেন।
Syntax:
Worksheets("Sheet1").Range("A1").Value = "Hello"
উদাহরণ:
Sub WriteToCell()
Worksheets("Sheet1").Range("A1").Value = "Hello, World!"
End Sub
এটি Sheet1-এর A1 সেলে "Hello, World!" লিখবে।
৬. Worksheet এর সমস্ত সেল ক্লিয়ার করা
কোনো worksheet-এ সব সেল মুছে দিতে ClearContents ব্যবহার করা হয়।
Syntax:
Worksheets("Sheet1").Cells.ClearContents
উদাহরণ:
Sub ClearAllCells()
Worksheets("Sheet1").Cells.ClearContents
End Sub
এটি Sheet1 এর সমস্ত সেলের ডেটা মুছে দেবে।
Workbook এবং Worksheet এর সাথে Advanced কাজ
১. Multiple Worksheets এর সাথে কাজ করা
যদি একাধিক worksheet এর সাথে কাজ করতে চান, তবে আপনি সেগুলো সিলেক্ট করতে পারেন এবং প্রতিটি worksheet-এ কোনো কাজ করতে পারেন।
Syntax:
For Each ws In ThisWorkbook.Worksheets
ws.Range("A1").Value = "Updated"
Next ws
উদাহরণ:
Sub UpdateAllWorksheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Range("A1").Value = "Updated"
Next ws
End Sub
এটি বর্তমান ওয়ার্কবুকের প্রতিটি worksheet এর A1 সেলে "Updated" লিখে দেবে।
সারাংশ
Excel VBA-তে Workbook এবং Worksheet এর সাথে কাজ করার মাধ্যমে আপনি একাধিক শীট এবং ফাইলের মধ্যে ডেটা ম্যানিপুলেশন এবং অটোমেশন করতে পারেন। আপনি নতুন Workbook তৈরি, বিদ্যমান Workbook খুলতে, এবং ডেটা পড়তে বা লিখতে পারেন। তাছাড়া, আপনি worksheet তৈরি, নাম পরিবর্তন, শীট হিড বা আনহিড করতে পারবেন। এই সব ফিচারগুলি Excel ম্যাক্রোকে আরও শক্তিশালী ও স্বয়ংক্রিয় করার জন্য অত্যন্ত উপকারী।
VBA (Visual Basic for Applications) ব্যবহার করে আপনি Excel-এ বিভিন্ন Worksheets এবং Workbooks পরিচালনা (manipulate) করতে পারেন। এর মাধ্যমে আপনি শীট যোগ করা, শীটের নাম পরিবর্তন, ডেটা কপি করা, ফাইল সেভ করা, এবং আরো অনেক ধরনের কাজ করতে পারবেন। Excel VBA-এর এই ক্ষমতাগুলো Excel ব্যবহারকারীদের জটিল কাজ সহজে এবং অটোমেটেডভাবে করতে সহায়তা করে।
VBA দিয়ে Worksheets Manipulation
VBA ব্যবহার করে Worksheets এর উপর বিভিন্ন কার্যক্রম পরিচালনা করা সম্ভব। নিচে কিছু সাধারণ Worksheet Manipulation এর উদাহরণ দেওয়া হলো:
১. নতুন Worksheet তৈরি করা
VBA কোড দিয়ে আপনি নতুন Worksheet তৈরি করতে পারেন।
Sub AddNewWorksheet()
Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "NewSheet"
End Sub
এখানে, Worksheets.Add ব্যবহার করে নতুন শীট তৈরি করা হয়েছে এবং তার নাম "NewSheet" রাখা হয়েছে। আপনি যদি শীটটি নির্দিষ্ট স্থানে যুক্ত করতে চান, তাহলে After বা Before প্যারামিটার ব্যবহার করতে পারেন।
২. Worksheet এর নাম পরিবর্তন করা
VBA কোড ব্যবহার করে একটি Worksheet এর নাম পরিবর্তন করা যায়:
Sub RenameWorksheet()
Worksheets("Sheet1").Name = "NewName"
End Sub
এখানে "Sheet1" নামক শীটটির নাম "NewName"-এ পরিবর্তিত করা হচ্ছে।
৩. Worksheet সরানো বা মুছে ফেলা
যদি আপনাকে কোনো Worksheet মুছে ফেলতে বা স্থানান্তর করতে হয়:
Sub DeleteWorksheet()
Application.DisplayAlerts = False 'Disable confirmation message
Worksheets("Sheet1").Delete
Application.DisplayAlerts = True 'Enable confirmation message
End Sub
এখানে, "Sheet1" নামক Worksheet মুছে ফেলা হচ্ছে। Application.DisplayAlerts = False ব্যবহার করে Excel এর নিশ্চিতকরণের বার্তা বন্ধ করা হয়েছে, যাতে মুছে ফেলার পর বার্তা না আসে।
৪. Worksheet এ ডেটা কপি করা
এক Worksheet থেকে অন্য Worksheet-এ ডেটা কপি করা:
Sub CopyDataBetweenSheets()
Worksheets("Sheet1").Range("A1:B10").Copy Destination:=Worksheets("Sheet2").Range("A1")
End Sub
এখানে, "Sheet1" এর A1 থেকে B10 পর্যন্ত রেঞ্জ কপি করে "Sheet2" এর A1 সেলে পেস্ট করা হচ্ছে।
VBA দিয়ে Workbooks Manipulation
Workbooks পরিচালনা করার মাধ্যমে আপনি একাধিক Excel ফাইল খুলতে, বন্ধ করতে, এবং সেভ করতে পারবেন। নীচে কিছু সাধারণ Workbook Manipulation এর উদাহরণ দেওয়া হলো:
১. নতুন Workbook তৈরি করা
VBA কোড ব্যবহার করে একটি নতুন Workbook তৈরি করা:
Sub CreateNewWorkbook()
Workbooks.Add
End Sub
এখানে, Workbooks.Add ব্যবহার করে একটি নতুন Workbook তৈরি করা হয়েছে।
২. Workbook খুলে ডেটা দেখতে থাকা
আপনি যদি কোনো নির্দিষ্ট Excel ফাইল খোলার জন্য VBA ব্যবহার করতে চান, তবে নিচের কোডটি ব্যবহার করতে পারেন:
Sub OpenWorkbook()
Workbooks.Open "C:\Path\To\Your\File.xlsx"
End Sub
এখানে "C:\Path\To\Your\File.xlsx" ফাইলটি খোলা হচ্ছে।
৩. Workbook সেভ করা
যেকোনো পরিবর্তিত Workbook সেভ করতে নিচের কোডটি ব্যবহার করুন:
Sub SaveWorkbook()
ThisWorkbook.Save
End Sub
এখানে, ThisWorkbook.Save ব্যবহার করে বর্তমান Workbook সেভ করা হচ্ছে। যদি আপনি ফাইলটি অন্য নাম দিয়ে সেভ করতে চান:
Sub SaveWorkbookAs()
ThisWorkbook.SaveAs "C:\Path\To\Your\NewFile.xlsx"
End Sub
৪. Workbook বন্ধ করা
VBA দিয়ে Workbook বন্ধ করার জন্য:
Sub CloseWorkbook()
ThisWorkbook.Close
End Sub
এখানে, ThisWorkbook.Close ব্যবহার করে বর্তমান Workbook বন্ধ করা হচ্ছে।
৫. অন্য Workbook থেকে ডেটা কপি করা
এক Workbook থেকে অন্য Workbook-এ ডেটা কপি করার জন্য:
Sub CopyDataFromAnotherWorkbook()
Workbooks("SourceWorkbook.xlsx").Sheets("Sheet1").Range("A1:B10").Copy _
Destination:=Workbooks("DestinationWorkbook.xlsx").Sheets("Sheet1").Range("A1")
End Sub
এখানে, "SourceWorkbook.xlsx" থেকে "Sheet1" এর A1:B10 রেঞ্জ কপি করে "DestinationWorkbook.xlsx" এর "Sheet1" এ পেস্ট করা হচ্ছে।
VBA দিয়ে Worksheets এবং Workbooks Manipulation এর উপকারিতা
১. অটোমেশন
VBA ব্যবহার করে আপনি এক্সেল ফাইলের সমস্ত রকম কাজ অটোমেট করতে পারেন, যেমন শীট তৈরি করা, ডেটা কপি-পেস্ট, শীট নাম পরিবর্তন ইত্যাদি। এই ধরনের কাজ একাধিক শীট বা ফাইলের মধ্যে পুনরাবৃত্তি করতে VBA কোড খুবই কার্যকর।
২. বিশাল ডেটা ম্যানেজমেন্ট
এক্সেলে বিশাল ডেটা সেট পরিচালনা করতে VBA আপনার সময় বাঁচায় এবং কাজের গতি বৃদ্ধি করে। একাধিক শীটে বা ফাইলে কাজ করার সময় আপনি স্বয়ংক্রিয়ভাবে ডেটা প্রসেসিং করতে পারেন।
৩. ইনস্ট্যান্ট রিভিউ এবং ম্যানিপুলেশন
VBA ব্যবহার করে আপনি অন্যান্য ফাইলগুলোর ডেটা সহজেই অ্যাক্সেস করতে এবং এগুলোর ওপর কাজ করতে পারেন, যা ম্যানুয়ালি করতে অনেক সময় নষ্ট হয়।
সারাংশ
VBA দিয়ে Worksheets এবং Workbooks Manipulation এক্সেল কাজের অটোমেশন এবং ডেটা ম্যানিপুলেশনের জন্য অত্যন্ত শক্তিশালী একটি পদ্ধতি। এটি Excel ব্যবহারকারীদের বিভিন্ন ফাইল এবং শীটের সাথে কাজ করতে, ডেটা কপি করতে, শীট বা ফাইল তৈরি ও মুছে ফেলতে এবং আরও অনেক কিছু করতে সহায়তা করে। VBA ব্যবহার করে আপনি আপনার কাজগুলো আরও দ্রুত এবং কার্যকরীভাবে করতে পারবেন, যা স্বাভাবিক ম্যানুয়াল পদ্ধতির চেয়ে অনেক বেশি সময় সাশ্রয়ী।
এক্সেল ম্যাক্রোতে বিভিন্ন ওয়র্কশীটের সঙ্গে কাজ করার জন্য VBA (Visual Basic for Applications) ব্যবহার করা হয়। আপনি ম্যাক্রোর মাধ্যমে সহজেই নতুন ওয়র্কশীট Add, পুরনো ওয়র্কশীট Delete, এবং ওয়র্কশীটের নাম Rename করতে পারেন। এই কাজগুলো স্বয়ংক্রিয়ভাবে করার জন্য ম্যাক্রো অত্যন্ত কার্যকরী।
নতুন ওয়র্কশীট (Add) তৈরি করা
এক্সেল VBA-তে Worksheets.Add মেথড ব্যবহার করে নতুন ওয়র্কশীট তৈরি করা হয়। এটি একটি নতুন শীট তৈরি করে এবং সেটিকে বর্তমান ওয়ার্কবুকের শেষে যুক্ত করে।
উদাহরণ:
Sub AddNewSheet()
Worksheets.Add
End Sub
এখানে:
- Worksheets.Add: এটি একটি নতুন শীট তৈরি করে এবং এটি কাজের শেষে যুক্ত করে।
নির্দিষ্ট অবস্থানে শীট যুক্ত করা:
আপনি যদি নতুন শীটটি কোনো নির্দিষ্ট অবস্থানে (যেমন, শীট ১ এর আগে) রাখতে চান, তাহলে Before বা After অপশন ব্যবহার করতে পারেন।
Sub AddSheetBefore()
Worksheets.Add Before:=Worksheets("Sheet1")
End Sub
এখানে:
- Before:=Worksheets("Sheet1"): নতুন শীটটি "Sheet1" এর আগে যুক্ত হবে।
ওয়র্কশীট (Delete) মুছে ফেলা
এক্সেল VBA-তে Worksheets.Delete মেথড ব্যবহার করে আপনি একটি ওয়র্কশীট মুছে ফেলতে পারেন। এটি সাধারণত ব্যবহৃত হয় যখন আপনি একটি শীট অপসারণ করতে চান, তবে সাবধান থাকতে হবে, কারণ একবার শীট মুছে ফেললে তা পুনরুদ্ধার করা সম্ভব নয়, যদি না আপনি এটি কোনো নিরাপত্তা ব্যবস্থা গ্রহণ না করেন।
উদাহরণ:
Sub DeleteSheet()
Application.DisplayAlerts = False ' Disable confirmation message
Worksheets("Sheet1").Delete
Application.DisplayAlerts = True ' Enable confirmation message
End Sub
এখানে:
- Application.DisplayAlerts = False: এটি নিশ্চিতকরণ বার্তাটি বন্ধ করে দেয়, যাতে শীটটি মুছে ফেলার আগে কোনো বার্তা না আসে।
- Worksheets("Sheet1").Delete: "Sheet1" নামের শীটটি মুছে ফেলবে।
- Application.DisplayAlerts = True: বার্তা পুনরায় চালু করে, যাতে ভবিষ্যতে শীট মুছতে গেলে সতর্কতা বার্তা প্রদর্শিত হয়।
ওয়র্কশীটের নাম (Rename) পরিবর্তন করা
এক্সেল VBA-তে Worksheets("OldName").Name = "NewName" স্টেটমেন্ট ব্যবহার করে একটি ওয়র্কশীটের নাম পরিবর্তন করা হয়। এটি খুবই সহজ পদ্ধতিতে নাম পরিবর্তন করার জন্য ব্যবহৃত হয়।
উদাহরণ:
Sub RenameSheet()
Worksheets("Sheet1").Name = "NewSheetName"
End Sub
এখানে:
- Worksheets("Sheet1").Name = "NewSheetName": "Sheet1" নামের শীটটির নাম পরিবর্তন করে "NewSheetName" রাখা হবে।
নাম পরিবর্তন করতে শর্ত দেওয়া:
যদি আপনি একটি শীটের নাম পরিবর্তন করার আগে তা উপস্থিত কিনা চেক করতে চান, তাহলে If-Else শর্ত ব্যবহার করা যেতে পারে।
Sub RenameSheetIfExists()
If WorksheetExists("Sheet1") Then
Worksheets("Sheet1").Name = "NewSheetName"
Else
MsgBox "শীটটি পাওয়া যায়নি!"
End If
End Sub
Function WorksheetExists(sheetName As String) As Boolean
On Error Resume Next
WorksheetExists = Not Worksheets(sheetName) Is Nothing
On Error GoTo 0
End Function
এখানে:
- WorksheetExists ফাংশনটি একটি চেক করে, শীটটির নাম আছে কিনা।
- যদি শীটটি থাকে, তবে তার নাম পরিবর্তন হবে, অন্যথায় একটি বার্তা প্রদর্শিত হবে।
সারাংশ
Excel Macros ব্যবহার করে আপনি Worksheets.Add, Worksheets.Delete, এবং Worksheets.Name এর মাধ্যমে এক্সেল ওয়র্কশীটের বিভিন্ন কার্যাবলী সহজে এবং দ্রুত করতে পারেন। Add মেথড ব্যবহার করে নতুন শীট তৈরি করা, Delete মেথডের মাধ্যমে শীট মুছে ফেলা এবং Rename স্টেটমেন্ট ব্যবহার করে শীটের নাম পরিবর্তন করা খুবই কার্যকর পদ্ধতি। এই প্রক্রিয়াগুলি এক্সেল কার্যক্রমকে আরও স্বয়ংক্রিয় এবং সহজ করে তোলে।
এক্সেল ম্যাক্রো (Excel Macros) ব্যবহার করে আপনি আপনার কাজের সময় Workbook সংরক্ষণ (Save), খুলা (Open), এবং বন্ধ (Close) করার মতো বিভিন্ন কাজ স্বয়ংক্রিয়ভাবে করতে পারেন। VBA (Visual Basic for Applications)-এর মাধ্যমে আপনি এই কাজগুলো সহজেই সঞ্চালন করতে পারবেন। এই কন্ট্রোলগুলি ব্যবহৃত হলে আপনার কাজের প্রক্রিয়া দ্রুত এবং অটোমেটেড হয়ে যাবে, বিশেষ করে যখন আপনি একাধিক ফাইল নিয়ে কাজ করছেন।
Workbook Save করা
Excel VBA-তে Save বা SaveAs ব্যবহার করে একটি workbook সংরক্ষণ (save) করা যায়। আপনি যদি বর্তমান workbookটি save করতে চান, তবে ThisWorkbook.Save ফাংশনটি ব্যবহার করা হয়। আর যদি নতুন নাম দিয়ে workbook save করতে চান, তবে SaveAs ফাংশন ব্যবহার করতে হবে।
১. Save (বর্তমান নাম দিয়ে সংরক্ষণ)
Sub SaveWorkbook()
ThisWorkbook.Save
End Sub
এখানে:
- ThisWorkbook.Save: এটি বর্তমান open করা workbook-টি সংরক্ষণ করবে।
২. SaveAs (নতুন নাম দিয়ে সংরক্ষণ)
Sub SaveWorkbookAs()
ThisWorkbook.SaveAs "C:\Users\YourName\Documents\NewWorkbook.xlsx"
End Sub
এখানে:
- ThisWorkbook.SaveAs: এটি আপনার workbook-টি নতুন নাম এবং অবস্থানে সংরক্ষণ করবে। ফাইলপথ (file path) অবশ্যই সঠিক হতে হবে।
৩. SaveAs with File Format (নতুন ফাইল ফরম্যাটে সংরক্ষণ)
Sub SaveWorkbookAsPDF()
ThisWorkbook.SaveAs "C:\Users\YourName\Documents\MyReport.pdf", FileFormat:=xlPDF
End Sub
এখানে:
- FileFormat:=xlPDF: এটি workbook-টি PDF ফরম্যাটে সংরক্ষণ করবে।
Workbook Open করা
VBA-তে Workbooks.Open ব্যবহার করে আপনি এক্সেল ফাইলটি ওপেন (Open) করতে পারেন। যদি আপনি একটি নির্দিষ্ট ফাইল খুলতে চান, তাহলে সেই ফাইলের পথ (path) সরাসরি উল্লেখ করতে হবে।
১. Open (ফাইল খোলা)
Sub OpenWorkbook()
Workbooks.Open "C:\Users\YourName\Documents\MyWorkbook.xlsx"
End Sub
এখানে:
- Workbooks.Open: এটি নির্দিষ্ট ফাইল পাথ থেকে workbook খোলার কাজ করবে।
২. Open with Password (পাসওয়ার্ড সহ ফাইল খোলা)
Sub OpenWorkbookWithPassword()
Workbooks.Open "C:\Users\YourName\Documents\MyWorkbook.xlsx", Password:="YourPassword"
End Sub
এখানে:
- Password:="YourPassword": এটি পাসওয়ার্ড সুরক্ষিত workbook খুলবে।
Workbook Close করা
VBA-তে Close ব্যবহার করে আপনি একটি workbook বন্ধ (close) করতে পারেন। যদি আপনি একটি workbook বন্ধ করতে চান, তবে Workbooks("YourWorkbookName").Close ব্যবহার করতে হবে। এছাড়া, ThisWorkbook.Close দিয়ে বর্তমান workbook বন্ধ করা যায়।
১. Close (বিভিন্ন উপায়ে বন্ধ করা)
Sub CloseWorkbook()
Workbooks("MyWorkbook.xlsx").Close
End Sub
এখানে:
- Workbooks("MyWorkbook.xlsx").Close: এটি নির্দিষ্ট workbook বন্ধ করবে।
২. Close with Save (সংরক্ষণ করে বন্ধ করা)
Sub CloseWorkbookWithSave()
Workbooks("MyWorkbook.xlsx").Close SaveChanges:=True
End Sub
এখানে:
- SaveChanges:=True: এটি পরিবর্তনগুলি সেভ (save) করে workbook বন্ধ করবে।
৩. Close without Save (সংরক্ষণ ছাড়া বন্ধ করা)
Sub CloseWorkbookWithoutSave()
Workbooks("MyWorkbook.xlsx").Close SaveChanges:=False
End Sub
এখানে:
- SaveChanges:=False: এটি কোনো পরিবর্তন সংরক্ষণ না করে workbook বন্ধ করবে।
৪. Close the Active Workbook (একটিভ workbook বন্ধ করা)
Sub CloseActiveWorkbook()
ActiveWorkbook.Close SaveChanges:=False
End Sub
এখানে:
- ActiveWorkbook.Close: এটি বর্তমানে একটিভ workbook বন্ধ করবে।
Workbook Save, Open, এবং Close করার কিছু উদাহরণ
১. Multiple Workbooks Open, Save and Close
ধরা যাক, আপনি একটি ম্যাক্রো তৈরি করতে চান যা একাধিক workbook খুলবে, সেগুলোর মধ্যে কিছু পরিবর্তন করবে এবং তারপর সেগুলো সংরক্ষণ (save) করে বন্ধ (close) করবে।
Sub OpenSaveCloseMultipleWorkbooks()
' Workbooks Open
Workbooks.Open "C:\Users\YourName\Documents\Report1.xlsx"
Workbooks.Open "C:\Users\YourName\Documents\Report2.xlsx"
' Some changes to the workbooks
Workbooks("Report1.xlsx").Sheets(1).Cells(1, 1).Value = "Updated"
' Workbooks Save
Workbooks("Report1.xlsx").Save
Workbooks("Report2.xlsx").Save
' Workbooks Close
Workbooks("Report1.xlsx").Close SaveChanges:=True
Workbooks("Report2.xlsx").Close SaveChanges:=True
End Sub
এখানে:
- দুটি workbook খোলা হবে, একটিতে কিছু পরিবর্তন করা হবে এবং পরে সেগুলোর পরিবর্তন সংরক্ষণ করে বন্ধ করা হবে।
২. Check and Open Workbook if Exists
Sub CheckAndOpenWorkbook()
Dim wb As Workbook
On Error Resume Next
Set wb = Workbooks.Open("C:\Users\YourName\Documents\MyWorkbook.xlsx")
On Error GoTo 0
If wb Is Nothing Then
MsgBox "Workbook not found!"
Else
MsgBox "Workbook opened successfully!"
End If
End Sub
এখানে:
- কোডটি প্রথমে workbook খোলার চেষ্টা করবে, এবং যদি ফাইলটি না থাকে তবে ব্যবহারকারীকে একটি বার্তা দেখাবে।
সারাংশ
Excel VBA ব্যবহার করে Workbook Save, Open, এবং Close করতে আপনি Save, SaveAs, Open, এবং Close ফাংশনগুলো ব্যবহার করতে পারেন। Workbook Save এর মাধ্যমে আপনি বর্তমান বা নতুন নাম দিয়ে workbook সংরক্ষণ করতে পারেন। Workbook Open ব্যবহার করে আপনি নির্দিষ্ট ফাইল খুলতে পারেন, এবং Workbook Close দিয়ে আপনি ফাইলটি বন্ধ করতে পারেন। এই অপারেশনগুলো আপনার কাজকে স্বয়ংক্রিয় এবং সহজ করে তোলে, বিশেষ করে একাধিক ফাইল পরিচালনা করার সময়।
এক্সেল ম্যাক্রো আপনাকে একাধিক Worksheet এবং Workbook এর সাথে কাজ করার সুযোগ দেয়, যার মাধ্যমে আপনি একাধিক শীটে বা একাধিক ফাইলে ডেটা প্রসেস এবং অটোমেট করতে পারেন। VBA (Visual Basic for Applications) ব্যবহার করে আপনি একাধিক শীট বা ফাইলের মধ্যে ডেটা কপি, পেস্ট, ম্যানিপুলেট এবং ফর্ম্যাট করতে পারেন।
Multiple Worksheets এর সাথে কাজ করা
একই Workbook এর মধ্যে একাধিক Worksheet এর সাথে কাজ করার জন্য আপনাকে VBA কোডের মাধ্যমে সেই শীটগুলো অ্যাক্সেস করতে হবে এবং প্রয়োজনীয় কার্যক্রম সম্পন্ন করতে হবে।
Worksheet অ্যাক্সেস এবং কাজ করা
প্রথমেই আপনাকে সঠিক Worksheet নির্বাচন করতে হবে এবং তারপর সেখানে কাজ করতে হবে। নিচে কিছু মৌলিক কাজের উদাহরণ দেওয়া হলো।
১. Worksheet Selection এবং Manipulation
Sub WorkWithMultipleSheets()
' শীট 1 এ ডেটা লিখতে
Sheets("Sheet1").Range("A1").Value = "Hello, World!"
' শীট 2 থেকে ডেটা কপি করে শীট 1 এর A2 সেলে পেস্ট করতে
Sheets("Sheet2").Range("A1").Copy
Sheets("Sheet1").Range("A2").PasteSpecial Paste:=xlPasteValues
End Sub
ব্যাখ্যা:
- Sheets("Sheet1"): "Sheet1" শীটটিকে সিলেক্ট এবং তার উপর কাজ করতে নির্দেশ দেয়।
- Range("A1").Value: নির্দিষ্ট সেলের মান সেট বা রিড করা।
- Copy and PasteSpecial: একটি শীট থেকে অন্য শীটে ডেটা কপি করা এবং শুধুমাত্র মান পেস্ট করা।
২. Loop ব্যবহার করে একাধিক Worksheet এ কাজ করা
যদি আপনি একাধিক শীটে একই কাজ করতে চান, তবে For Each Loop ব্যবহার করে সেটি অটোমেট করা যায়।
Sub LoopThroughSheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Sheets
ws.Range("A1").Value = "Updated"
Next ws
End Sub
এটি Workbook এর সব শীটে A1 সেলে "Updated" লিখবে।
৩. শীটের নাম এবং শর্ত অনুযায়ী কাজ করা
Sub ConditionalSheetWork()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Sheets
If ws.Name = "Sales" Then
ws.Range("B2").Value = "Sales Data"
End If
Next ws
End Sub
এটি শুধুমাত্র "Sales" নামে শীটে কাজ করবে এবং B2 সেলে "Sales Data" লিখবে।
Multiple Workbooks এর সাথে কাজ করা
একাধিক Workbook এর সাথে কাজ করা আরও জটিল হতে পারে, কারণ আপনাকে একাধিক ফাইল খোলার, তথ্য এক্সট্র্যাক্ট করার, বা ডেটা এক Workbook থেকে অন্য Workbook এ স্থানান্তর করার প্রয়োজন হতে পারে। VBA এর মাধ্যমে এই কাজগুলো খুব সহজেই অটোমেট করা যায়।
১. Workbook ওপেন এবং ক্লোজ করা
Sub OpenCloseWorkbook()
' একটি নতুন Workbook খুলুন
Workbooks.Open "C:\path\to\your\workbook.xlsx"
' কাজ শেষে Workbook বন্ধ করুন
Workbooks("workbook.xlsx").Close SaveChanges:=True
End Sub
ব্যাখ্যা:
- Workbooks.Open: নির্দিষ্ট ফাইল পাথ দিয়ে একটি Workbook খুলবে।
- Workbooks("workbook.xlsx").Close: নির্দিষ্ট Workbook বন্ধ করবে এবং পরিবর্তন সংরক্ষণ করবে।
২. এক Workbook থেকে অন্য Workbook এ ডেটা কপি করা
Sub CopyDataBetweenWorkbooks()
' দুটি Workbook এর কাজ
Dim sourceWB As Workbook
Dim targetWB As Workbook
' সেলেক্ট করা Workbook গুলি
Set sourceWB = Workbooks.Open("C:\path\to\source.xlsx")
Set targetWB = Workbooks.Open("C:\path\to\target.xlsx")
' Source Workbook থেকে Data কপি করে Target Workbook এ পেস্ট করা
sourceWB.Sheets("Sheet1").Range("A1:B10").Copy
targetWB.Sheets("Sheet1").Range("A1").PasteSpecial Paste:=xlPasteValues
' কাজ শেষে Workbooks বন্ধ করা
sourceWB.Close
targetWB.Close SaveChanges:=True
End Sub
এটি একটি Workbook থেকে ডেটা কপি করে অন্য Workbook এ পেস্ট করবে। পরবর্তীতে উভয় Workbook বন্ধ করে দেবে।
৩. একাধিক Workbook এর মধ্যে Loop ব্যবহার করে কাজ করা
Sub LoopThroughMultipleWorkbooks()
Dim wb As Workbook
Dim filePath As String
' Workbook এর ফাইল পাথ সন্নিবেশ করুন
filePath = "C:\path\to\your\folder\"
' একটি ফোল্ডারে থাকা সমস্ত Workbooks এর মধ্যে Loop করা
fileName = Dir(filePath & "*.xlsx")
Do While fileName <> ""
Set wb = Workbooks.Open(filePath & fileName)
wb.Sheets(1).Range("A1").Value = "Updated"
wb.Close SaveChanges:=True
fileName = Dir
Loop
End Sub
এই কোডটি একটি নির্দিষ্ট ফোল্ডারে থাকা সব .xlsx ফাইলের মধ্যে লুপ করবে এবং তাদের প্রথম শীটে A1 সেল আপডেট করবে।
সারাংশ
Multiple Worksheets এবং Multiple Workbooks এর সাথে কাজ করার মাধ্যমে এক্সেল ম্যাক্রো ব্যবহারকারীরা বড় পরিসরে ডেটা ম্যানিপুলেশন এবং অটোমেশন করতে পারেন। VBA এর সাহায্যে একাধিক শীট বা ফাইলের মধ্যে ডেটা কপি, পেস্ট, ম্যানিপুলেট এবং ফরম্যাট করা সম্ভব। এছাড়া, Loop এবং Conditional Structures ব্যবহার করে একাধিক শীট বা ফাইলের মধ্যে একযোগে কাজ করা আরও সহজ হয়ে ওঠে। একাধিক ফাইলের সঙ্গে কাজ করার সময় সঠিকভাবে ফাইল ওপেন, ডেটা কপি এবং ফাইল ক্লোজ করার প্রক্রিয়া ম্যানেজ করা গুরুত্বপূর্ণ।
Read more